{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Hierarchical Clustering Asset Allocation with MlFinLab\n",
    "\n",
    "## Abstract\n",
    "The following notebook will explore MlFinLab's implementation of Thomas Raffinot's Hierarchical Equal Risk Contribution portfolio optimization technique. Users will be taken through how they can construct an optimal portfolio and the different risk metrics and linkage algorithms supported. Additionally, users will be able to see how they can create custom use cases with this library.\n",
    "\n",
    "## Introduction\n",
    "This tutorial will show users how to optimize a portfolio using the __[Hierarchical Equal Risk Contribution](https://ssrn.com/abstract=3237540)__ (HERC) optimization technique provided through the MlFinLab library. The HERC technique was developed by Thomas Raffinot in 2018, which built off his original __[Hierarchical Clustering Asset Allocation](https://ssrn.com/abstract=2840729)__ (HCAA) technique from 2017. The official documentation for this tutorial can be found __[here](https://mlfinlab.readthedocs.io/en/latest/portfolio_optimisation/hierarchical_clustering_asset_allocation.html)__. \n",
    "\n",
    "\n",
    "From Raffinot's 2018 paper on the HERC optimization technique, the following steps for implementation of the HCAA and HERC techniques were shown. \n",
    "\n",
    "Raffinot described the HCAA implementation in four steps:\n",
    "1. Hierarchical clustering\n",
    "2. Selecting the optimal number of clusters\n",
    "3. Capital is allocated across clusters\n",
    "4. Capital is allocated within clusters\n",
    "\n",
    "HERC is built off this original implementation, combining the machine learning approach of the HCAA technique with the Top-Down recursive bisection approach from the __[Hierarchical Risk Parity](https://hudsonthames.org/an-introduction-to-the-hierarchical-risk-parity-algorithm/)__ algorithm. The HERC algorithm aims to diversify capital and risk allocations throughout the portfolio.\n",
    "\n",
    "The steps for the HERC implementation are computed as:\n",
    "1. Hierarchical clustering\n",
    "2. Selecting the optimal number of clusters\n",
    "3. Top-Down recursive bisection\n",
    "4. Implement Naive Risk Parity within clusters to allocate weights to each asset\n",
    "\n",
    "### Supported Allocation Metrics\n",
    "\n",
    "The HERC implementation provided through MlFinLab currently supports the following metrics for calculating weight allocations:\n",
    "1. 'minimum_variance': The variance of the clusters is used as a risk metric\n",
    "2. 'minimum_standard_deviation': The standard deviation of the clusters is used as a risk metric\n",
    "3. 'sharpe_ratio': The Sharpe ratio of the clusters is used as a risk metric\n",
    "4. 'equal_weighting': All clusters are weighted equally with respect to the risk\n",
    "5. 'expected_shortfall': The expected shortfall of the clusters is used as a risk metric\n",
    "6. 'conditional_drawdown_risk': The conditional drawdown at risk of the clusters is used as a risk metric\n",
    "\n",
    "### Supported Linkage Methods\n",
    "\n",
    "Additionally, MlFinLab allows users to customize the type of linkage algorithm for the use of clustering. The current supported linkage methods are:\n",
    "1. Single Linkage - the distance between two clusters is the minimum distance between any two points in the clusters\n",
    "2. Complete Linkage - the distance between two clusters is the maximum of the distance between any two points in the clusters\n",
    "3. Average Linkage - the distance between two clusters is the average of the distance between any two points in the clusters\n",
    "4. Ward Linkage - the distance between two clusters is the increase of the squared error from when two clusters are merged\n",
    "\n",
    "**The default linkage method in MlFinLab is set as the Ward Linkage method.** To learn more about the different types of linkage methods, please refer to Raffinot's paper on the __[HCAA method](https://ssrn.com/abstract=2840729)__ or to the __[official documentation](https://mlfinlab.readthedocs.io/en/latest/portfolio_optimisation/hierarchical_clustering_asset_allocation.html)__. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Importing our required libraries\n",
    "import pandas as pd\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "import matplotlib.patches as mpatches\n",
    "import yfinance as yf\n",
    "from mlfinlab.portfolio_optimization.hcaa import HierarchicalClusteringAssetAllocation"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## The Data\n",
    "All stock data in this tutorial was accesssed through the yfinance library. To learn more about the yfinance library and how to install it, please refer to the official project description __[here](https://pypi.org/project/yfinance/)__. In this tutorial, we will be working with 5-year historical closing-price data from Apple, Amazon, Facebook, Google, IBM, Microsoft, Netflix, Oracle, and Tesla. Note that the data must be in a Pandas dataframe indexed by date.\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[*********************100%***********************]  9 of 9 completed\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>AAPL</th>\n",
       "      <th>AMZN</th>\n",
       "      <th>FB</th>\n",
       "      <th>GOOGL</th>\n",
       "      <th>IBM</th>\n",
       "      <th>MSFT</th>\n",
       "      <th>NFLX</th>\n",
       "      <th>ORCL</th>\n",
       "      <th>TSLA</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Date</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2019-12-31</th>\n",
       "      <td>293.649994</td>\n",
       "      <td>1847.839966</td>\n",
       "      <td>205.250000</td>\n",
       "      <td>1339.390015</td>\n",
       "      <td>134.039993</td>\n",
       "      <td>157.699997</td>\n",
       "      <td>323.570007</td>\n",
       "      <td>52.980000</td>\n",
       "      <td>418.329987</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-12-30</th>\n",
       "      <td>291.519989</td>\n",
       "      <td>1846.890015</td>\n",
       "      <td>204.410004</td>\n",
       "      <td>1339.709961</td>\n",
       "      <td>132.809998</td>\n",
       "      <td>157.589996</td>\n",
       "      <td>323.309998</td>\n",
       "      <td>52.700001</td>\n",
       "      <td>414.700012</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-12-27</th>\n",
       "      <td>289.799988</td>\n",
       "      <td>1869.800049</td>\n",
       "      <td>208.100006</td>\n",
       "      <td>1354.640015</td>\n",
       "      <td>135.270004</td>\n",
       "      <td>158.960007</td>\n",
       "      <td>329.089996</td>\n",
       "      <td>53.459999</td>\n",
       "      <td>430.380005</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-12-26</th>\n",
       "      <td>289.910004</td>\n",
       "      <td>1868.770020</td>\n",
       "      <td>207.789993</td>\n",
       "      <td>1362.469971</td>\n",
       "      <td>134.910004</td>\n",
       "      <td>158.669998</td>\n",
       "      <td>332.630005</td>\n",
       "      <td>53.570000</td>\n",
       "      <td>430.940002</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-12-24</th>\n",
       "      <td>284.269989</td>\n",
       "      <td>1789.209961</td>\n",
       "      <td>205.119995</td>\n",
       "      <td>1344.430054</td>\n",
       "      <td>134.979996</td>\n",
       "      <td>157.380005</td>\n",
       "      <td>333.200012</td>\n",
       "      <td>53.439999</td>\n",
       "      <td>425.250000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                  AAPL         AMZN          FB        GOOGL         IBM  \\\n",
       "Date                                                                       \n",
       "2019-12-31  293.649994  1847.839966  205.250000  1339.390015  134.039993   \n",
       "2019-12-30  291.519989  1846.890015  204.410004  1339.709961  132.809998   \n",
       "2019-12-27  289.799988  1869.800049  208.100006  1354.640015  135.270004   \n",
       "2019-12-26  289.910004  1868.770020  207.789993  1362.469971  134.910004   \n",
       "2019-12-24  284.269989  1789.209961  205.119995  1344.430054  134.979996   \n",
       "\n",
       "                  MSFT        NFLX       ORCL        TSLA  \n",
       "Date                                                       \n",
       "2019-12-31  157.699997  323.570007  52.980000  418.329987  \n",
       "2019-12-30  157.589996  323.309998  52.700001  414.700012  \n",
       "2019-12-27  158.960007  329.089996  53.459999  430.380005  \n",
       "2019-12-26  158.669998  332.630005  53.570000  430.940002  \n",
       "2019-12-24  157.380005  333.200012  53.439999  425.250000  "
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "raw_prices = yf.download(\"AAPL AMZN FB MSFT NFLX TSLA GOOGL ORCL IBM\", start='2015-01-01', end='2020-01-01')\n",
    "stock_prices = raw_prices.iloc[::-1]\n",
    "stock_prices = stock_prices['Close']\n",
    "stock_prices.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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vC8GbvHOzwSWANuMMf4Q8t8DB3AF0+bggs3nAay1bwL3e22ZwDS8Oew+a+0+XOG4s40x/6+Mvv1ojMkCVuPm2t9krf2T94xM3DJvbwB7cUPZ3w/6jOW4rPZab8h5W+BW77pMXID9ejl/NmOAz3HD4LNwAfxz3vcP9hpwBvBmkWXi7vD6Ptcbvv8pcExZH+gF6N8AJ5XTvytwLzKW4r7/W4QO//8C99Liy1KORUREIsZYW9JoNBERERERERGpaZSJFxEREREREaklFMSLiIiIiIiI1BIK4kVERERERERqCQXxIiIiIiIiIrVEdKQ7UF1SUlJs586dI90NERERERERkUpZsGDBLmtti5LO1dkgvnPnzsyfPz/S3RARERERERGpFGPM+tLOaTi9iIiIiIiISC2hIF5ERERERESkllAQLyIiIiIiIlJL1Nk58SXJzc1l06ZN5OTkRLorNU5cXBzt27cnJiYm0l0RERERERGRUtSrIH7Tpk0kJSXRuXNnjDGR7k6NYa1l9+7dbNq0iS5dukS6OyIiIiIiIlKKejWcPicnh+bNmyuAL8IYQ/PmzTVCQUREREREpIarV0E8oAC+FPpzERERERERqfnqXRAvIiIiIiIiUlspiI+AadOmYYxh+fLlIe3/+Mc/iIuLY//+/YVts2bNokmTJqSmpnLsscdy7733FraPGjUqrP0WERERERGRyFIQHwFpaWmccsoppKWlFWsfOnQo77zzTkj7sGHDSE9PZ/78+bz66qt8//334eyuiIiIiIiI1BAK4sMsKyuLOXPm8NxzzzF16tTC9jVr1pCVlcV9991XLLj3JSYmMnjwYFavXh2u7oqIiIiIiEgNUq+WmAt273+XsHRLRpU+s3fbxvz53D5lXvPee+9x1lln0bNnT5o3b86CBQsYPHgwU6dOZezYsQwbNowVK1awfft2WrVqFXLv7t27mTt3Lvfccw87d+6s0r6LiIiIiIhIzadMfJilpaUxduxYAMaOHVuYdffbGzRowJgxY3jzzTcL75k9ezYDBw7kF7/4BXfeeSd9+pT9okBERERERETqpnqbiS8vY14d9uzZw8yZM1m0aBHGGPLz8zHGMG7cOFatWsWZZ54JwOHDh+nSpQuTJk0C3Jz4Dz74IOz9FRERERERkZpFmfgweuutt7j88stZv34969atY+PGjXTp0oUbbriB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Js477zx69OhBt27duOGGGzh8+DCzZs2iSZMmpKam0qtXL269NfT/YKdPn86QIUPo3bs3AwcO5JZbbgHcsnQPP/xwJL6KiIiI1CZbf4TEltC4gkuLFeVXMy9vTryG09c9CSlwwAvi35voRnS0TXXz5UUk7KqzOv2l1to21toYa217a+1z1trLrbX9rLX9rbWjrbVbg66/31rbzVp7jLV2elD7R9bant65+6urv+FgreXCCy/k/PPPZ9WqVaxcuZKsrCzuuusuAIYNG0Z6ejo//PADH3zwAV999RUAixcvZtKkSbz66qssXbqU+fPn071790h+FREREakNrIUf/gPbFsPSaWUvJVeeBlGuCnlFhtNHxUJUNEQ3DLQriK+9Erw58da6NeMBTBkrGohItYqOdAfqk5kzZxIXF8eECa4wTFRUFI8++ihdunThtNNOK7wuPj6e1NRUNm920/8feugh7rrrLnr16lV437XXXhv+LyAiIiK1y/bF8N51bj8qFk7749E9LzahYoXt/Kx9cKY2rvHRfbZETkIy5B9yv9uWfWDHElcYUUQiot4G8dOnT2fbtm1V+szWrVtz9tlnl3p+yZIlDB48OKStcePGdOzYkdWrVxe27d27l1WrVnHqqacCLhPvD58XERERCZF3GL54EE6c5IKtYOu+Cuwfd42rJH40YhJDh9N/ei90PAF6jnDB/eED7ic46359OuTnuir3Ujv568DnHYL4ptDpZOh0YmT7JFKPRWKdeCnF7NmzGTBgAO3atWPEiBG0bt060l0SERGRmu6HV2D23+Hrf7nhznvWBs7tXO62Cc3h1CMsaBds/wZYOBU2LXDHcx6B1y52+y+fBw9394L4hMA9yV2gRc+j/2yJnJg4t83Ndr/fmISyrxeRalVvM/FlZcyrS+/evXnrrbdC2jIyMtiwYQPdu3dn2LBhfPDBB/z000+ccMIJXHzxxaSmptKnTx8WLFjAgAEDwt5nERERqeG2LXTbhGT47ln46Fa4+nNoNwgO7ISmHeE3n0F8s6r7zCXvQJv+gWNrYdO3bn/HMs1/r2uivSA+L8cNqY9VEC8SScrEh9Hpp5/OwYMHefnllwHIz8/nlltuYfz48SQkBP5j2KVLF+68806mTJkCwG233cYDDzzAypUrASgoKOCpp54K/xcQERGRmsfPvJso2Py929/uLeZzcDc0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UB4PxYsWAZD96mvBthGnDcebl0fq1KmYEhKaxO/Q3EZ/sRU94bJDjpWXb8t89lliLrs0+Dusjr+0lH233IIxIoL2H80IJp8rXbOWkqVLMSbE49q+Haj6dzd+0qSQPYtoniSIF0IIIYSoyaJnYNX7MPRWOOcJfeSwsmF31sttPenpFMyZg3P5CgDsffsGR9urY4jUp+97A8FudZTbTeYzz4LBgK1vPwq+/gZvVjbmVomUbdqkZ7AOZHjXTCbsAwdSump1jddrSOXPZawUnNdV+KkVJchqqifeVBkDAWDJkiWULF8e3K+UIvvNN7H373/M2dmV10vmCy9Suno17f83s05J945VeXm/2KuvxrlyJaVr1uij8UphHzgQb24OsVdcQcYTT7Lz/HEAGOPjaffB+01iLbemafTYtLHGzO62fv0oW7cO55q1RJxa8++nbMMG8HjwFRez75Zb6TJfLydYsmwpaBpt33iT3RdfjCkhIfhyQAiQIF4IIYQQoqrUNfD5tXDCVbDwCeh/efUBfD0p/u039k26BQLl4sxt2hw2gAewtGsLgGdvzVN4C3+cjwrUTrd17waAa8tmPYjfvAlr165VaqeHDR5E1ksv483LqzKyHWpKKfzFxfrIbNu21bbx5eUDRxbEd5o7F39xEZrBQMqbbzSJrPRHyhARUfGlUvnA1Pvuo/CbOVh79qw2iC9ZvgKDzaovjajFgXvupeiHHwBQZWV6ucIQKV/zXnmqOAQSwnXuTPQlF+PNyabwu++CbeMn3UzEiBEopch44kkAEu68A8f552NJSaGpOFxptnbvvM22oSfj2rrlsEF8yfIVoGnETbyGnP+8i6+4BGNEOKWrV2Pt1g173z60/c87mJvQc4umQRLbCSGEEEKUK0qHmRMgbxcseFTfd/q/GiyAByj6YR4Gu52O33xN3M030+all2o9xxgVhTE6usZ1uMrjoTBQW73NC89j7dkLNI3SjRtRSuHatBlbr55VzilPllVax/JfR6Nk+Qq29OzFtsEnsXPcePxlZdW2K59Ob4yuexBv7dQRez89G33k6adj79//2DvcwGqail34jV473rV5c5UR+nJ7J05k92UTar2+3+mkaN684MsRf0nJMfT2UPtvv4N9k25BKYWvuATnqlWAXvnA2qULmqZh7aov4ch49lmAYPm2yjMC4iZNalIBfG2M0dGY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\n",
      "text/plain": [
       "<Figure size 1224x504 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Taking a quick look at our data\n",
    "plt.figure(figsize=(17,7))\n",
    "plt.plot(stock_prices)\n",
    "plt.ylabel('Price')\n",
    "plt.xlabel('Date')\n",
    "plt.title('Stock Data Overview')\n",
    "plt.legend(stock_prices.columns)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Minimum Variance Portfolio\n",
    "The Minimum Variance portfolio uses the variance of the clusters as a risk metric to calculate asset weights. In this example, we will also be showing the different effects of using the four different linkage algorithms. We will first be using the Single Linkage method, then the Complete Linkage method, followed by the Average Linkage method, and finally the Ward Linkage method. Keep in mind that the default linkage algorithm is set to the Ward Linkage algorithm.\n",
    "\n",
    "Note that the allocate method for the HierarchicalClusteringAssetAllocation() object requires three parameters to run: \n",
    "1. asset_names (a list of strings containing the asset names)\n",
    "2. asset_prices (a dataframe of historical asset prices - daily close)\n",
    "3. allocation_metric (the type of solution/algorithm to use to calculate the weights)\n",
    "\n",
    "Users can also specify: \n",
    "1. The type of linkage algorithm (shown below) \n",
    "2. The confidence level used for calculating expected shortfall and conditional drawdown at risk \n",
    "3. The optimal number of clusters for clustering\n",
    "4. How to resample the prices\n",
    "\n",
    "For simplicity, we will only be working with the three required parameters and also specifying our linkage algorithm of choice. For more detailed notes on this implementation, please refer to the __[official documentation](https://mlfinlab.readthedocs.io/en/latest/portfolio_optimisation/hierarchical_clustering_asset_allocation.html)__. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Minimum Variance Portfolio Weights - Single Linkage \n",
      "        TSLA       IBM     NFLX      ORCL      AAPL       FB     AMZN  \\\n",
      "0  0.004115  0.003099  0.00312  0.004641  0.344669  0.00474  0.01991   \n",
      "\n",
      "      GOOGL     MSFT  \n",
      "0  0.018846  0.59686  \n"
     ]
    }
   ],
   "source": [
    "# HCAA implementation with minimum_variance solution - Single Linkage\n",
    "hcaaMV_single = HierarchicalClusteringAssetAllocation()\n",
    "hcaaMV_single.allocate(asset_names=stock_prices.columns,\n",
    "                       asset_prices=stock_prices,\n",
    "                       allocation_metric='minimum_variance',\n",
    "                       linkage='single')\n",
    "\n",
    "print(\"Minimum Variance Portfolio Weights - Single Linkage \\n\", hcaaMV_single.weights)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Minimum Variance Portfolio Weights - Complete Linkage \n",
      "         IBM     ORCL     TSLA     NFLX      AAPL        FB      AMZN  \\\n",
      "0  0.078676  0.05924  0.05964  0.08873  0.288485  0.090621  0.029151   \n",
      "\n",
      "      GOOGL      MSFT  \n",
      "0  0.281124  0.024335  \n"
     ]
    }
   ],
   "source": [
    "# HCAA implementation with minimum_variance solution - Complete Linkage\n",
    "hcaaMV_complete = HierarchicalClusteringAssetAllocation()\n",
    "hcaaMV_complete.allocate(asset_names=stock_prices.columns,\n",
    "                         asset_prices=stock_prices,\n",
    "                         allocation_metric='minimum_variance',\n",
    "                         linkage='complete')\n",
    "\n",
    "print(\"Minimum Variance Portfolio Weights - Complete Linkage \\n\", hcaaMV_complete.weights)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Minimum Variance Portfolio Weights - Average Linkage \n",
      "        TSLA       IBM      ORCL      NFLX      AAPL        FB      AMZN  \\\n",
      "0  0.019747  0.014869  0.014969  0.022271  0.144173  0.022745  0.023872   \n",
      "\n",
      "      GOOGL     MSFT  \n",
      "0  0.140494  0.59686  \n"
     ]
    }
   ],
   "source": [
    "# HCAA implementation with minimum_variance solution - Average Linkage\n",
    "hcaaMV_average = HierarchicalClusteringAssetAllocation()\n",
    "hcaaMV_average.allocate(asset_names=stock_prices.columns,\n",
    "                        asset_prices=stock_prices,\n",
    "                        allocation_metric='minimum_variance',\n",
    "                        linkage='average')\n",
    "\n",
    "print(\"Minimum Variance Portfolio Weights - Average Linkage \\n\", hcaaMV_average.weights)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Minimum Variance Portfolio Weights - Ward Linkage \n",
      "        NFLX      AAPL        FB      AMZN     GOOGL     MSFT      TSLA  \\\n",
      "0  0.163349  0.122996  0.123826  0.184225  0.068371  0.18815  0.060523   \n",
      "\n",
      "        IBM      ORCL  \n",
      "0  0.066627  0.021933  \n"
     ]
    }
   ],
   "source": [
    "# HCAA implementation with minimum_variance solution - Ward Linkage\n",
    "hcaaMV_ward = HierarchicalClusteringAssetAllocation()\n",
    "hcaaMV_ward.allocate(asset_names=stock_prices.columns,\n",
    "                         asset_prices=stock_prices,\n",
    "                         allocation_metric='minimum_variance',\n",
    "                         linkage='ward')\n",
    "\n",
    "print(\"Minimum Variance Portfolio Weights - Ward Linkage \\n\", hcaaMV_ward.weights)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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SQ1GgwjngMG8kfH9liRJktSQNJhwLkmSJElSfdUgzjmvbperduH95e8XrL/2rdrz3k/fq7HN5Zdfzm233UZJSQlNmjTh+uuvp3///px++umcd9557Lfffpu93/nz53PkkUfy8ssv1/o5rVu3ZtmyZeusu+6669h222057bTTNvq8CRMmUF5ezjXXXLPZdUqSJEmSvpgGGc4LGcxr09/06dN54IEHeO6552jRogWLFy/m888/B+CGG24oaC1b4uyzz866BEmSJElSDZzWXgDvvvsu7dq1o0WLFgC0a9eO3XbbDYCysjLKy8uB3Kj2z3/+c/bff38GDBjA++/nQv/rr7/OgAED6N69OxdeeCGtW7debx9r1qxh1KhR9O3blx49enD99dfXur4xY8Zw1VVXVdbzn//5n/Tr14/OnTvz+OOPr9f+wQcfZODAgSxevJi//OUv9O/fn169enHYYYdV1rxo0SK+/vWv07VrV04//XT23HNPFi9eDMCf/vQn+vXrR8+ePTnrrLNYs2ZNrWuVJEmSpMaoqOE8IoZExD8i4rWIOH8jbU6MiDkRMTsibitmPcUyaNAgFixYQOfOnfnhD3/IY489tsF2y5cvZ8CAAbzwwgscfPDBjB8/HoCRI0cycuRIXnrpJTp06LDB59544420bduWGTNmMGPGDMaPH8+bb765RfWuXr2aZ599lt/85jdccskl62y75557uOKKK5g8eTLt2rXja1/7Gk8//TTPP/88w4YN48orrwTgkksu4dBDD2X27Nkcf/zxvPXWWwDMnTuXSZMm8eSTTzJr1ixKSkq49dZbt6hOSZIkSWosijatPSJKgGuBrwMLgRkRcX9KaU6VNnsDFwAHppQ+jIgvFaueYmrdujUzZ87k8ccfZ+rUqQwdOpQrrriC4cOHr9OuefPmHHnkkQD06dOHv/71r0BuWvy9994LwMknn8xPf/rT9fYxZcoUXnzxRe666y4APv74Y+bNm7dF9/k+9thjK2uYP39+5fq//e1vlJeXM2XKFLbbbjsgdw/5oUOH8u677/L5559X7u+JJ57gnnvuAWDIkCHssMMOADz66KPMnDmTvn37AvDZZ5/xpS/Vy7dVkiRJkraaYp5z3g94LaX0BkBE3A4cDcyp0uYM4NqU0ocAKaV/FbGeoiopKaGsrIyysjK6d+/OH/7wh/XCebNmzSpvAVZSUsLq1atr3X9KibFjxzJ48OAvXGvF9PvqNey111688cYbvPrqq5SWlgLwox/9iPPOO4+jjjqKadOmMWbMmE3W+Z3vfIdf/vKXX7hOSZIkSWosihnOdwcWVFleCPSv1qYzQEQ8CZQAY1JK/1u9o4g4EzgToH379kybNm2d7W3btmXp0qUFK3xDaup/3rx5RARf/epXAXjmmWfYddddWbp0KWvWrGH58uWVz6/4+dlnn7Fq1SqWLl1KaWkpf/rTnzjuuOOYMGFCZbtly5axdu1ali5dyiGHHMLYsWPp27cvzZo1Y968eey22260atVqk7WuXLmSZs2arVfPsmXLSCmxdOlSVqxYwa677sqYMWM45ZRTuOWWW+jSpQsffvgh22+/PUuXLuWGG25gzZo1LF26lL59+/LHP/6Rc889l0cffZQPP/yQZcuWMWDAAIYNG8YZZ5zBzjvvzAcffMCyZcv48pe/XIi3YR0rVqxY77MgSZIkSfVR1ldrbwrsDZQBHYC/R0T3lNJHVRullMYB4wBKS0tTWVnZOp3MnTuXNm3aVC63b9W+4LdSq9p/dSklRowYwUcffUTTpk356le/yrhx42jTpg0lJSW0atWq8vkVP7fZZhuaNWtGmzZtuOaaazj11FO5+uqrGTJkCG3btqVNmza0bt2aJk2a0KZNG0aMGMF7773HIYccQkqJnXfemXvvvXe9uj799FO6dOlSuXzeeefRokULWrRosV49K1euJCJo06YNLVu2pHnz5vTp04eJEydyyimn8Je//IVLL72U4cOHs8MOO3DooYeycOFC2rRpw+WXX85JJ53EHXfcwcCBA9lll13Ydddd6dixI//1X//Fsccey9q1a2nWrBnXXnttjcdvS7Vs2ZJevXoVvF9JkiRJ2toipVScjiMGkhsJH5xfvgAgpfTLKm2uA55JKd2cX34UOD+lNGNj/ZaWlqaKq59XmDt37jqBtL759NNP2WabbYgIbr/9diZOnMh9992XdVk1WrlyJSUlJTRt2pTp06fzgx/8gFmzZm3VGur7+y5JylZcEgXtL40u3HeqKGxpFOnrniRpC0TEzJRSafX1xRw5nwHsHRGdgLeBYcDJ1drcC5wE3BwR7chNc3+jiDXVSTNnzmTEiBGklNh+++256aabsi5pk9566y1OPPFE1q5dS/PmzSuvPC9JkiRJ2nxFC+cppdURMQJ4mNz55DellGZHxKVAeUrp/vy2QRExB1gDjEopLSlWTXXVQQcdxAsvvJB1GZtl77335vnnn8+6DEmSJElqEIp6znlKaTIwudq6i6v8noDz8g9JkiRJkhqlJlkXIEmSJElSY2c4lyRJkiQpY4ZzSZIkSZIy1jDD+S675O5BUqjHLrtscpfvvfcew4YNY6+99qJPnz4cccQRvPrqq0V7idOmTePII4+ssc2sWbOYPHlyjW2qmz9/Pt26dVtv/cUXX8wjjzxS43PHjBnDVVddtVn7kyRJkiQV+YJwmXn//a3aX0qJY445hu985zvcfvvtALzwwgu8//77dO7cubC1bIZZs2ZRXl7OEUcc8YX7uvTSSwtQkSRJkiRpQxrmyPlWNnXqVJo1a8bZZ59duW7//ffnoIMOIqXEqFGj6NatG927d2fSpElAbuT7kEMO4eijj+YrX/kK559/Prfeeiv9+vWje/fuvP766wAMHz6cs88+m9LSUjp37swDDzyw3v6XL1/O9773Pfr160evXr247777+Pzzz7n44ouZNGkSPXv2ZNKkSRtsV1vDhw/nrrvuAqBjx46MHj2a3r170717d1555ZX12o8fP57DDz+czz77jPHjx9O3b1/2339/jjvuOD799FMAXn/9dQYMGED37t258MILad26deXzf/WrX9G3b1969OjB6NGja12nJEmSJNVHhvMCePnll+nTp88Gt/35z39m1qxZvPDCCzzyyCOMGjWKd999F8iNrl933XXMnTuXP/7xj7z66qs8++yznH766YwdO7ayj/nz5/Pss8/y4IMPcvbZZ7NixYp19nH55Zdz6KGH8uyzzzJ16lRGjRrFqlWruPTSSxk6dCizZs1i6NChG2y3fPnyLXrN7dq147nnnuMHP/jBelPZr7nmGh544AHuvfdettlmG4499lhmzJjBCy+8QJcuXbjxxhsBGDlyJCNHjuSll16iQ4cOlc+fMmUK8+bN49lnn2XWrFnMnDmTv//971tUpyRJkiTVB4bzInviiSc46aSTKCkpoX379hxyyCHMmDEDgL59+7LrrrvSokUL9tprLwYNGgRA9+7dmT9/fmUfJ554Ik2aNGHvvffmK1/5ynoj1VOmTOGKK66gZ8+elJWVsWLFCt566631aqltu9o49thjAejTp886td5yyy089NBD3HXXXbRo0QLI/fHioIMOonv37tx6663Mnj0bgOnTp3PCCScAcPLJJ69T55QpU+jVqxe9e/fmlVdeYd68eVtUpyRJkiTVBw3znPOtrGvXrpVTvjdHRXgFaNKkSeVykyZNWL16deW2iFjnedWXU0rcfffd7LPPPuusf+aZZ2rVbktU1FpSUrJOrd27d2fWrFksXLiQTp06Abkp8ffeey/7778/EyZMYNq0aTX2nVLiggsu4KyzzvrCdUqSJElSfeDIeQEceuihrFy5knHjxlWue/HFF3n88cc56KCDmDRpEmvWrGHRokX8/e9/p1+/fpvV/5133snatWt5/fXXeeONN9YL14MHD2bs2LGklAB4/vnnAWjTpg1Lly7dZLtC6tWrF9dffz1HHXUU77zzDgBLly5l1113ZdWqVdx6662VbQcMGMDdd98NUHkhvYo6b7rpJpYtWwbA22+/zb/+9a+C1ypJkiRJdUXDDOft22/V/iKCe+65h0ceeYS99tqLrl27csEFF7DLLrtwzDHH0KNHD/bff38OPfRQrrzySnapxa3Zqvryl79Mv379OPzww7nuuuto2bLlOtsvuugiVq1aRY8ePejatSsXXXQRAP/2b//GnDlzKi8It7F21f3jH/+gQ4cOlY8777xzs+r92te+xlVXXcU3vvENFi9ezGWXXUb//v058MAD2XfffSvb/eY3v+Hqq6+mR48evPbaa7Rt2xaAQYMGcfLJJzNw4EC6d+/O8ccfv84fGSRJkiSpoYmKUdT6orS0NJWXl6+zbu7cuXTp0iWjiopr+PDhHHnkkRx//PFZl1Jwn376Kdtssw0Rwe23387EiRM36wryDfl9lyQVX1wSm260GdLown2nisKWRj37uidJDVpEzEwplVZf7znnyszMmTMZMWIEKSW23357brrppqxLkiRJkqRMGM7ruAkTJmRdQtEcdNBBvPDCC1mXIUmSJEmZa5jnnEuSJEmSVI8YziVJkiRJypjhXJIkSZKkjBnOJUmSJEnKWIMM57vskrsFSaEetb0t+b333ktE8MorrxT3BRbAtGnTOPLII9dbf/rppzNnzpwanzt8+HDuuuuuYpUmSZIkSY1Ogwzn77+fTX8TJ07ka1/7GhMnTizIflevXl2QfjbHDTfcwH777bfV9ytJkiRJjVmDDOdZWLZsGU888QQ33ngjt99+e+X6YcOG8eCDD1YuV4w6r1mzhlGjRtG3b1969OjB9ddfD+RGtA866CCOOuqoypD8rW99iz59+tC1a1fGjRtX2deNN95I586d6devH2eccQYjRowAYNGiRRx33HH07duXvn378uSTT9b6dZSVlVFeXg5A69at+fnPf87+++/PgAEDeH8Df6W46KKLGD58OGvWrOHSSy+lb9++dOvWjTPPPJOUEgAzZsygR48e9OzZk1GjRtGtWzeAjR4DSZIkSWpsDOcFct999zFkyBA6d+7MTjvtxMyZMwEYOnQod9xxBwCff/45jz76KN/4xje48cYbadu2LTNmzGDGjBmMHz+eN998E4DnnnuO3/72t7z66qsA3HTTTcycOZPy8nJ+97vfsWTJEt555x0uu+wynn76aZ588sl1ptKPHDmSc889lxkzZnD33Xdz+umnb9FrWr58OQMGDOCFF17g4IMPZvz48etsHzVqFIsWLeLmm2+mpKSEESNGMGPGDF5++WU+++wzHnjgAQC++93vcv311zNr1ixKSkoqn1/TMZAkSZKkxqRp1gU0FBMnTmTkyJFAbrR84sSJ9OnTh8MPP5yRI0eycuVK/vd//5eDDz6YbbbZhilTpvDiiy9Wnrv98ccfM2/ePJo3b06/fv3o1KlTZd+/+93vuOeeewBYsGAB8+bN47333uOQQw5hxx13BOCEE06oDPOPPPLIOueNf/LJJyxbtozWrVtv1mtq3rx55Xnpffr04a9//Wvltssuu4z+/fuvM5I/depUrrzySj799FM++OADunbtykEHHcTSpUsZOHAgACeffHJlaN/YMaj62iVJkiSpMTCcF8AHH3zA3/72N1566SUigjVr1hAR/OpXv6Jly5aUlZXx8MMPM2nSJIYNGwZASomxY8cyePDgdfqaNm0arVq1Wmf5kUceYfr06Wy77baUlZWxYsWKGutZu3YtTz/9NC1btvxCr6tZs2ZEBAAlJSXrnAPft29fZs6cyQcffMCOO+7IihUr+OEPf0h5eTl77LEHY8aM2WSdGzsGkiRJktTYOK29AO666y6+/e1v889//pP58+ezYMECOnXqxOOPPw7kprbffPPNPP744wwZMgSAwYMH8/vf/55Vq1YB8Oqrr7J8+fL1+v7444/ZYYcd2HbbbXnllVd4+umngVw4fuyxx/jwww9ZvXo1d999d+VzBg0axNixYyuXZ82aVfDXPGTIEM4//3y+8Y1vsHTp0sog3q5dO5YtW1Y5Gr799tvTpk0bnnnmGYB1zsev7TGQJEmSpIauQYbz9u23bn8TJ07kmGOOWWfdcccdV3nV9kGDBvHYY49x2GGH0bx5cyB3y7L99tuP3r17061bN84666wNXp19yJAhrF69mi5dunD++eczYMAAAHbffXd+9rOf0a9fPw488EA6duxI27Ztgdw0+PLycnr06MF+++3Hddddt8G6H330UTp06FD5mD59+mYdlxNOOIEzzjiDo446ihYtWnDGGWfQrVs3Bg8eTN++fSvb3XjjjZxxxhn07NmT5cuXV9ZZ22MgSZIkSQ1dVFxRu74oLS1NFVcTrzB37ly6dOmSUUXZqTiPfPXq1RxzzDF873vfW++PBHVB1fPdr7jiCt59911++9vffuF+G+v7LkkqjLgkCtpfGl2471RR2NKoZ1/3JKlBi4iZKaXS6us957weGzNmDI888ggrVqxg0KBBfOtb38q6pA168MEH+eUvf8nq1avZc889mTBhQtYlSZIkSVKdYjivx6666qqsS6iVoUOHMnTo0KzLkCRJkqQ6q0Gecy5JkiRJUn1iOJckSZIkKWOGc0mSJEmSMmY4lyRJkiQpYw3ygnBX7XIVy99fXrD+WrVvxU/f++lGt5977rnsueee/PjHPwZg8ODB7LHHHtxwww0A/OQnP2H33XfnvPPO26L9T5gwgfLycq655pparT/iiCO47bbb2H777TfaZ1lZGVdddRWlpetdwV+SJEmStJU1yJHzQgbz2vR34IEH8tRTTwGwdu1aFi9ezOzZsyu3P/XUUxxwwAG12ldKibVr1255scDkyZNrDOaSJEmSpLqlQYbzre2AAw5g+vTpAMyePZtu3brRpk0bPvzwQ1auXMncuXPp3bs3y5Yt49///d/p3bs33bt357777gNg/vz57LPPPpx22ml069aNBQsWcPPNN9O5c2f69evHk08+uVn1dOzYkcWLFzN//ny6dOnCGWecQdeuXRk0aBCfffbZOm3Xrl3L8OHDufDCCwH4wQ9+QGlpKV27dmX06NGV7SZPnsy+++5Lnz59+I//+A+OPPJIAJYvX873vvc9+vXrR69evSpfkyRJkiSp9gznBbDbbrvRtGlT3nrrLZ566ikGDhxI//79mT59OuXl5XTv3p3mzZvTsmVL7rnnHp577jmmTp3KT37yE1JKAMybN48f/vCHzJ49m+bNmzN69GiefPJJnnjiCebMmbPFtc2bN49zzjmH2bNns/3223P33XdXblu9ejWnnHIKe++9N7/4xS8AuPzyyykvL+fFF1/kscce48UXX2TFihWcddZZPPTQQ8ycOZNFixZV9nH55Zdz6KGH8uyzzzJ16lRGjRrF8uWFnbkgSZIkSQ2d4bxADjjgAJ566qnKcD5w4MDK5QMPPBDITVn/2c9+Ro8ePTjssMN4++23ef/99wHYc889GTBgAADPPPMMZWVl7LzzzjRv3pyhQ7bi4+oAACAASURBVIducV2dOnWiZ8+eAPTp04f58+dXbjvrrLPo1q0bP//5zyvX3XHHHfTu3ZtevXoxe/Zs5syZwyuvvMJXvvIVOnXqBMBJJ51U2X7KlClcccUV9OzZk7KyMlasWMFbb721xfVKkiRJUmPUIC8Il4WK885feuklunXrxh577MGvf/1rtttuO7773e8CcOutt7Jo0SJmzpxJs2bN6NixIytWrACgVatWRamrRYsWlb+XlJSsM639gAMOqBzBb9myJW+++SZXXXUVM2bMYIcddmD48OGV9W1MSom7776bffbZpyj1S5IkSVJj4Mh5gRxwwAE88MAD7LjjjpSUlLDjjjvy0UcfMX369MqLwX388cd86UtfolmzZkydOpV//vOfG+yrf//+PPbYYyxZsoRVq1Zx5513FqXm73//+xxxxBGceOKJrF69mk8++YRWrVrRtm1b3n//fR566CEA9tlnH954443KUfdJkyZV9jF48GDGjh1bOT3/+eefL0qtkiRJktSQNchw3qp9YUeha9Nf9+7dWbx4ceXU9Ip1bdu2pV27dgCccsopleeg33LLLey7774b7GvXXXdlzJgxDBw4kAMPPJAuXbpsdL8TJkygQ4cOlY+FCxdu1ms777zz6NWrF9/+9rfp3r07vXr1Yt999+Xkk0+unI6/zTbb8D//8z8MGTKEPn360KZNG9q2bQvARRddxKpVq+jRowddu3bloosu2qz9S5IkSZIgKkY864vS0tJUXl6+zrq5c+fWGGD1xS1btozWrVuTUuKcc85h77335txzz820Jt93SdIXEZdEQftLowv3nSoKWxr17OueJDVoETEzpVRafX2DHDlX4Y0fP56ePXvStWtXPv74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\n",
      "text/plain": [
       "<Figure size 1224x504 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Comparing our four Linkage algorithms\n",
    "average = hcaaMV_average.weights[sorted(hcaaMV_average.weights)]\n",
    "average = average.values.tolist()\n",
    "average = [item for sublist in average for item in sublist]\n",
    "\n",
    "complete = hcaaMV_complete.weights[sorted(hcaaMV_complete.weights)]\n",
    "complete = complete.values.tolist()\n",
    "complete = [item for sublist in complete for item in sublist]\n",
    "\n",
    "single = hcaaMV_single.weights[sorted(hcaaMV_single.weights)]\n",
    "single = single.values.tolist()\n",
    "single = [item for sublist in single for item in sublist]\n",
    "\n",
    "ward = hcaaMV_ward.weights[sorted(hcaaMV_ward.weights)]\n",
    "ward = ward.values.tolist()\n",
    "ward = [item for sublist in ward for item in sublist]\n",
    "\n",
    "x = np.arange(len(average))\n",
    "bar_width = 0.2\n",
    "\n",
    "plt.figure(figsize=(17,7))\n",
    "plt.bar(x, single, color='green', width=bar_width, zorder=2)\n",
    "plt.bar(x + bar_width, complete, color='red', width=bar_width, zorder=2)\n",
    "plt.bar(x + bar_width*2, average, color='blue', width=bar_width, zorder=2)\n",
    "plt.bar(x + bar_width*3, ward, color='purple', width=bar_width, zorder=2)\n",
    "\n",
    "plt.xticks(x + bar_width, sorted(hcaaMV_average.weights))\n",
    "plt.title('Comparison of Linkage Algorithms')\n",
    "plt.xlabel('Stocks')\n",
    "plt.ylabel('Asset Weights')\n",
    "\n",
    "green_patch = mpatches.Patch(color='green', label='Single Linkage')\n",
    "red_patch = mpatches.Patch(color='red', label='Complete Linkage')\n",
    "blue_patch = mpatches.Patch(color='blue', label='Average Linkage')\n",
    "purple_patch=mpatches.Patch(color='purple', label='Ward Linkage')\n",
    "plt.legend(handles=[green_patch, red_patch, blue_patch, purple_patch], loc='upper left')\n",
    "\n",
    "plt.grid(axis='y')\n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Through this implementation, we can see how the four different linkage algorithms affect our optimal portfolio creation."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Minimum Standard Deviation Portfolio\n",
    "The Minimum Standard Deviation portfolio uses the standard deviation of the clusters as a risk metric to solve for the optimal portfolio. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Minimum Standard Deviation Portfolio Weights \n",
      "        NFLX      AAPL        FB      AMZN    GOOGL      MSFT      TSLA  \\\n",
      "0  0.107983  0.024962  0.025131  0.037389  0.13068  0.038186  0.264432   \n",
      "\n",
      "        IBM      ORCL  \n",
      "0  0.129002  0.242235  \n"
     ]
    }
   ],
   "source": [
    "# HCAA implementation with minimum_standard_deviation solution\n",
    "hcaaMSD = HierarchicalClusteringAssetAllocation()\n",
    "hcaaMSD.allocate(asset_names=stock_prices.columns,\n",
    "                 asset_prices=stock_prices,\n",
    "                 allocation_metric='minimum_standard_deviation')\n",
    "\n",
    "print(\"Minimum Standard Deviation Portfolio Weights \\n\", hcaaMSD.weights)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1224x504 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Plotting our Minimum Standard Deviation portfolio\n",
    "MSD_weights = hcaaMSD.weights[sorted(hcaaMSD.weights)]\n",
    "MSD_weights = MSD_weights.values.tolist()\n",
    "MSD_weights = [item for sublist in MSD_weights for item in sublist]\n",
    "y_pos = np.arange(len(stock_prices.columns))\n",
    "\n",
    "plt.figure(figsize=(17,7))\n",
    "plt.bar(y_pos, MSD_weights)\n",
    "plt.xticks(y_pos, sorted(hcaaMSD.weights))\n",
    "plt.xlabel('Stocks')\n",
    "plt.ylabel('Portfolio Weights')\n",
    "plt.title('Minimum Standard Deviation Portfolio')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Sharpe Ratio Portfolio\n",
    "The Sharpe ratio of the clusters is now used as a risk metric when constructing the optimal portfolio."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Sharpe Ratio Portfolio Weights \n",
      "        NFLX      AAPL        FB      AMZN     GOOGL     MSFT      TSLA  \\\n",
      "0  0.163349  0.122996  0.123826  0.184225  0.068371  0.18815  0.060523   \n",
      "\n",
      "        IBM      ORCL  \n",
      "0  0.066627  0.021933  \n"
     ]
    }
   ],
   "source": [
    "# HCAA implementation with sharpe_ratio solution\n",
    "hcaaSR = HierarchicalClusteringAssetAllocation()\n",
    "hcaaSR.allocate(asset_names=stock_prices.columns,\n",
    "                asset_prices=stock_prices,\n",
    "                allocation_metric='sharpe_ratio')\n",
    "\n",
    "print(\"Sharpe Ratio Portfolio Weights \\n\", hcaaSR.weights)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1224x504 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Plotting our Sharpe ratio portfolio\n",
    "SR_weights = hcaaSR.weights[sorted(hcaaSR.weights)]\n",
    "SR_weights = SR_weights.values.tolist()\n",
    "SR_weights = [item for sublist in SR_weights for item in sublist]\n",
    "y_pos = np.arange(len(stock_prices.columns))\n",
    "\n",
    "plt.figure(figsize=(17,7))\n",
    "plt.bar(y_pos, SR_weights)\n",
    "plt.xticks(y_pos, sorted(hcaaSR.weights))\n",
    "plt.xlabel('Stocks')\n",
    "plt.ylabel('Portfolio Weights')\n",
    "plt.title('Sharpe Ratio Portfolio')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Equal Weighting Portfolio\n",
    "In this example, all the clusters are weighted equally in terms of risk to construct our optimal portfolio."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Equal Weighting Portfolio Weights \n",
      "        NFLX      AAPL        FB      AMZN     GOOGL      MSFT      TSLA  \\\n",
      "0  0.096878  0.072945  0.073437  0.109259  0.126615  0.111586  0.035895   \n",
      "\n",
      "        IBM  ORCL  \n",
      "0  0.123385  0.25  \n"
     ]
    }
   ],
   "source": [
    "# HCAA implementation with equal_weighting solution\n",
    "hcaaEW = HierarchicalClusteringAssetAllocation()\n",
    "hcaaEW.allocate(asset_names=stock_prices.columns,\n",
    "                asset_prices=stock_prices,\n",
    "                allocation_metric='equal_weighting')\n",
    "\n",
    "print(\"Equal Weighting Portfolio Weights \\n\", hcaaEW.weights)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1224x504 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Plotting our Equal Weighting portfolio\n",
    "EW_weights = hcaaEW.weights[sorted(hcaaEW.weights)]\n",
    "EW_weights = EW_weights.values.tolist()\n",
    "EW_weights = [item for sublist in EW_weights for item in sublist]\n",
    "y_pos = np.arange(len(stock_prices.columns))\n",
    "\n",
    "plt.figure(figsize=(17,7))\n",
    "plt.bar(y_pos, EW_weights)\n",
    "plt.xticks(y_pos, sorted(hcaaEW.weights))\n",
    "plt.xlabel('Stocks')\n",
    "plt.ylabel('Portfolio Weights')\n",
    "plt.title('Equal Weighting Portfolio')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Expected Shortfall Portfolio\n",
    "The Expected Shortfall (CVaR) of the clusters is now being used as a risk metric to contruct our optimal portfolio."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Expected Shortfall Portfolio Weights \n",
      "        NFLX      AAPL        FB      AMZN     GOOGL      MSFT      TSLA  \\\n",
      "0  0.144621  0.108894  0.109629  0.163103  0.092423  0.166578  0.053584   \n",
      "\n",
      "        IBM      ORCL  \n",
      "0  0.090064  0.071104  \n"
     ]
    }
   ],
   "source": [
    "# HCAA implementation with expected_shortfall solution\n",
    "hcaaES = HierarchicalClusteringAssetAllocation()\n",
    "hcaaES.allocate(asset_names=stock_prices.columns,\n",
    "                asset_prices=stock_prices,\n",
    "                allocation_metric='expected_shortfall')\n",
    "\n",
    "print(\"Expected Shortfall Portfolio Weights \\n\", hcaaES.weights)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1224x504 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Plotting our Expected Shortfall portfolio\n",
    "ES_weights = hcaaES.weights[sorted(hcaaES.weights)]\n",
    "ES_weights = ES_weights.values.tolist()\n",
    "ES_weights = [item for sublist in ES_weights for item in sublist]\n",
    "y_pos = np.arange(len(stock_prices.columns))\n",
    "\n",
    "plt.figure(figsize=(17,7))\n",
    "plt.bar(y_pos, ES_weights)\n",
    "plt.xticks(y_pos, sorted(hcaaES.weights))\n",
    "plt.xlabel('Stocks')\n",
    "plt.ylabel('Portfolio Weights')\n",
    "plt.title('Expected Shortfall Portfolio')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Conditional Drawdown at Risk Portfolio\n",
    "The Conditional Drawdown at Risk (CDaR) of the clusters is used as a risk metric."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Conditional Drawdown at Risk Portfolio Weights \n",
      "        NFLX      AAPL       FB      AMZN     GOOGL      MSFT      TSLA  \\\n",
      "0  0.108033  0.030375  0.03058  0.045497  0.118906  0.046466  0.257438   \n",
      "\n",
      "        IBM     ORCL  \n",
      "0  0.106524  0.25618  \n"
     ]
    }
   ],
   "source": [
    "# HCAA implementation with conditional_drawdown_at_risk solution\n",
    "hcaaCDR = HierarchicalClusteringAssetAllocation()\n",
    "hcaaCDR.allocate(asset_names=stock_prices.columns,\n",
    "                 asset_prices=stock_prices,\n",
    "                 allocation_metric='conditional_drawdown_risk')\n",
    "\n",
    "print(\"Conditional Drawdown at Risk Portfolio Weights \\n\", hcaaCDR.weights)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1224x504 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Plotting our Conditional Drawdown at Risk portfolio\n",
    "CDR_weights = hcaaCDR.weights[sorted(hcaaCDR.weights)]\n",
    "CDR_weights = CDR_weights.values.tolist()\n",
    "CDR_weights = [item for sublist in CDR_weights for item in sublist]\n",
    "y_pos = np.arange(len(stock_prices.columns))\n",
    "\n",
    "plt.figure(figsize=(17,7))\n",
    "plt.bar(y_pos, CDR_weights)\n",
    "plt.xticks(y_pos, sorted(hcaaCDR.weights))\n",
    "plt.xlabel('Stocks')\n",
    "plt.ylabel('Portfolio Weights')\n",
    "plt.title('Conditional Drawdown at Risk Portfolio')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Comparison of Allocation Metrics\n",
    "In the following graph, we can see how the portfolio weightings differ for each solution."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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335bb731ltq3b18ifQAAAAAAgNLB8rcykJGRoebNmystLU2SNHDgQL311luSpKpVq+rxxx9Xy5Yt1blzZx05ckSStGfPHt15551q3bq1YmJitGvXLknS4cOH1adPH4WGhio0NFQbN27UuHHjtGfPHoWFhWnMmDGSpGnTpqlNmzYKCQnRhAkTvGN5/vnn1axZM7Vv3947nrwOHjyoBg0aeI9zzrw6cOCA7rzzTjVt2lRjx471no+Pj1dwcLCCgoL05JNPes9XrVpVf/jDHxQaGqrnn39eBw4cUKdOndSpUydNnjxZ69ev129+8xuNGTNG6enpiomJUatWrdSqVStt3LjxZz13AAAAAABQcsrXTKUycPr0aYWF/W+J3FNPPaX+/ftr1qxZGjp0qB577DH9+OOPevDBByVJP/30kyIiIvTyyy9r8uTJmjRpkmbNmqXhw4frjTfeUNOmTfXvf/9bI0aM0MqVKzVq1Ch17NhRixcv1vnz55WZmakpU6YoOTnZO0Pqs88+0+7du7V582ZZaxUXF6e1a9fK399fH374oVwul7Kzs9WqVSu1bt36knt4/PHHdccdd6ht27bq1q2bHnjgAd14442SJJfLpW3btqlSpUpq3ry5Hn30Ufn6+urJJ59UUlKSbrrpJnXr1k0ff/yxevfurZ9++klRUVF68cUXJUnvvPOOVq1apZo1a0qSVq5cqenTpysiIkKnTp3S559/Lj8/P+3evVsDBw5UYmJiqb4vAAAAAABQPIRKpayg5W9du3bVggUL9Mgjj2j79u3e8z4+Purfv78kafDgwbr33nuVmZmpjRs3ql+/ft56Z86ckeQOYebOnSvJvX9T9erV9eOPP+bq67PPPtNnn32m8PBwSVJmZqZ2796tkydPqk+fPt6lZ3FxcfnewwMPPKDu3bvr008/1ZIlS/Tmm296x9y5c2dVr15dktSiRQvt3btXx44dU2xsrGrVqiVJGjRokNauXavevXvL19dXffv2LdazO3funEaOHCmXyyVfX199/fXXxboOAAAAAACUPkKlMnLhwgWlpqaqSpUq+vHHH3MtL8vJGKMLFy7oxhtvvOy9may1euqpp/TQQw/lOj9jxoxit1GvXj0NGzZMw4YNU1BQkJKTkyVJlSpV8tbx9fVVdnbh+0z5+fnJ19e3WH2+/PLLqlOnjrZv364LFy7Iz8+v2OMFAAAAAACliz2VysjLL7+swMBAzZ8/Xw888IDOnTsnyR02LVy4UJI0f/58tW/fXr/4xS/UuHFjLViwQJI7JMo5U+j111+X5N74OiMjQ9WqVdPJkye9fXXv3l3vvPOOMjMzJUn79+/XDz/8oA4dOujjjz/W6dOndfLkSS1btizfsX766afe8R06dEjHjh1T/fr1C7y3yMhIrVmzRkePHtX58+cVHx+vjh075ls371hzysjI0C233CIfHx+9//77On/+fIF9AgAAAACAK6t8hUoVS3hiVjHau7in0sWfcePGKS0tTX/729/04osvKiYmRh06dNBzzz0nSfL399fmzZsVFBSklStXavz48ZKkefPm6e2331ZoaKhatmypJUuWSJJeeeUVrVq1SsHBwWrdurVSUlJUo0YNtWvXTkFBQRozZoy6deumX/3qV4qOjlZwcLDuu+8+nTx5Uq1atVL//v0VGhqqu+66S23atMn3Hj777DMFBQUpNDRU3bt317Rp01S3bt0C7/mWW27RlClT1KlTJ4WGhqp169beb47La/jw4brzzjvVqVOnS8pGjBih9957T6Ghodq1a5f8/f2LfN4AAAAAAODKMNbash5DiYiIiLB5N3FOTU1VYGBgGY3o8lStWtU7owgojmvxcw4AAAAUyRhn9R38bTvJTHLU9AQ7oehKOduf5LD9Cc7av6aV4nstbeX1vRpjkqy1EfmVla+ZSgAAAAAAACgRhEpXGWYpAQAAAACAawGhEgAAAAAAABwjVAIAAAAAAIBjhEoAAAAAAABwjFAJAAAAAAAAjlUo6wFcSdOnT9dPP/1UYu35+/tr9OjRhdY5dOiQfv/732vLli268cYbVadOHc2YMUPNmjX7WX2vXr1a06dP1/Lly7V06VKlpKRo3Lhx+vjjj9WsWTO1aNFCkjR+/Hh16NBBXbp0+Vn9FdR33vO9evVSkyZNdOrUKdWpU0djx45Vz549S6zv/AwdOlQ9e/bUfffdV6r9FOTEiROaP3++RowYkW+5r6+vgoODlZ2drcaNG+v999/XjTfeqAMHDmjUqFFauHBhvtelp6erZ8+eSk5OLs3hAwAAAABwWcrVTKWSDJSK0561Vn369FFsbKz27NmjpKQk/fnPf9bhw4dLdBxxcXEaN26cJOnjjz9WSkqKt2zy5MklGigVJSYmRtu2bVNaWppmzpypkSNH6osvvrikXnZ29hUbU2k7ceKEXnvttQLLK1euLJfLpeTkZN18883661//KkmqV69egYESAAAAAABXu3IVKl1pq1atUsWKFfXwww97z4WGhiomJkbWWo0ZM0ZBQUEKDg5WQkKCJPdsn9jYWN13330KCAjQoEGDZK2VJH366acKCAhQq1attGjRIm+bc+bM0ciRI7Vx40YtXbpUY8aMUVhYmPbs2aOhQ4d6g4svvvhC4eHhCg4O1rBhw3TmzBlJUqNGjTRhwgS1atVKwcHB2rVrlyRp8+bNio6OVnh4uNq2bau0tDRH9x8WFqbx48dr1qxZktwzih5++GFFRUVp7NixBbZ/9913a8eOHZKk8PBwTZ48WZJ71tVbb70la61Gjhyp5s2bq0uXLvrhhx+8feZ3j1u2bNG9994rSVqyZIkqV66ss2fPKisrS02aNJEkxcbG6sknn1RkZKSaNWumdevWXXI/mZmZ6ty5s/c5LVmyRJI0btw47dmzR2FhYRozZkyhzyQ6Olr79++X5J6JFBQUJEn66quvFBkZqbCwMIWEhGj37t25rvv2228VHh6uLVu2OHgDAAAAAACUHkKlUpScnKzWrVvnW7Zo0SK5XC5t375dK1as0JgxY3Tw4EFJ0rZt2zRjxgylpKTo22+/1YYNG5SVlaUHH3xQy5YtU1JSkg4dOnRJm23btlVcXJymTZsml8ul2267zVuWlZWloUOHKiEhQTt37lR2drZef/11b3nNmjW1detW/e53v9P06dMlSQEBAVq3bp22bdumyZMn6+mnn3b8DFq1auUNqSRp37592rhxo1566aUC24+JidG6deuUkZGhChUqaMOGDZKkdevWqUOHDlq8eLHS0tKUkpKiuXPnauPGjYXeY3h4uFwul7eNoKAgbdmyRf/+978VFRXlHVt2drY2b96sGTNmaNKkSZfci5+fnxYvXqytW7dq1apV+sMf/iBrraZMmaLbbrtNLpdL06ZNK/BZnD9/Xl988YXi4uIuKXvjjTf02GOPyeVyKTExUQ0aNPCWpaWlqW/fvpozZ47atGnj5PEDAAAAAFBqCJXKyPr16zVw4ED5+vqqTp066tixo3cWSmRkpBo0aCAfHx+FhYUpPT1du3btUuPGjdW0aVMZYzR48GBH/aWlpalx48bevZyGDBmitWvXessvzuRp3bq10tPT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\n",
      "text/plain": [
       "<Figure size 1440x720 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "x = np.arange(len(ward))\n",
    "bar_width = 0.1\n",
    "\n",
    "plt.figure(figsize=(20,10))\n",
    "plt.bar(x, ward, color='green', width=bar_width, zorder=2)\n",
    "plt.bar(x + bar_width, MSD_weights, color='red', width=bar_width, zorder=2)\n",
    "plt.bar(x + bar_width*2, SR_weights, color='blue', width=bar_width, zorder=2)\n",
    "plt.bar(x + bar_width*3, EW_weights, color='purple', width=bar_width, zorder=2)\n",
    "plt.bar(x + bar_width*4, ES_weights, color='pink', width=bar_width, zorder=2)\n",
    "plt.bar(x + bar_width*5, CDR_weights, color='grey', width=bar_width, zorder=2)\n",
    "\n",
    "plt.xticks(x + bar_width, sorted(hcaaMV_average.weights))\n",
    "plt.title('Comparison of Allocation Metrics')\n",
    "plt.xlabel('Stocks')\n",
    "plt.ylabel('Asset Weights')\n",
    "\n",
    "green_patch = mpatches.Patch(color='green', label='Minimum Variance')\n",
    "red_patch = mpatches.Patch(color='red', label='Minimum Standard Deviation')\n",
    "blue_patch = mpatches.Patch(color='blue', label='Sharpe Ratio')\n",
    "purple_patch=mpatches.Patch(color='purple', label='Equal Weighting')\n",
    "pink_patch = mpatches.Patch(color='pink', label='Expected Shortfall')\n",
    "grey_patch=mpatches.Patch(color='grey', label='Conditional Drawdown at Risk')\n",
    "plt.legend(handles=[green_patch, red_patch, blue_patch, purple_patch, pink_patch, grey_patch], loc='upper left')\n",
    "\n",
    "plt.grid(axis='y')\n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Custom Input from Users\n",
    "MlFinLab also provides users with a lot of customizability when it comes to creating their optimal portfolios. Instead of providing the raw historical closing prices for the assets, users can input the asset returns, a covariance matrix of asset returns, and expected asset returns to calculate their optimal portfolio. If you would like to learn more about the customizbility within MlFinLab's HCAA implementation, please refer to the __[official documentation](https://mlfinlab.readthedocs.io/en/latest/portfolio_optimisation/hierarchical_clustering_asset_allocation.html)__.\n",
    "\n",
    "The following parameters in the allocate() method are utilized in order to construct a custom use case:\n",
    "1. 'asset_returns': (pd.DataFrame/NumPy matrix) A matrix of asset returns\n",
    "2. 'covariance_matrix': (pd.DataFrame/NumPy matrix) A covariance matrix of asset returns\n",
    "3. 'expected_asset_returns: (list) A list of mean asset returns\n",
    "\n",
    "To make some of the necessary calculations, we will make use of the ReturnsEstimation class provided by MlFinLab."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Importing ReturnsEstimation class from MlFinLab\n",
    "from mlfinlab.portfolio_optimization.returns_estimators import ReturnsEstimation"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>AAPL</th>\n",
       "      <th>AMZN</th>\n",
       "      <th>FB</th>\n",
       "      <th>GOOGL</th>\n",
       "      <th>IBM</th>\n",
       "      <th>MSFT</th>\n",
       "      <th>NFLX</th>\n",
       "      <th>ORCL</th>\n",
       "      <th>TSLA</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Date</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2019-12-30</th>\n",
       "      <td>-0.007254</td>\n",
       "      <td>-0.000514</td>\n",
       "      <td>-0.004093</td>\n",
       "      <td>0.000239</td>\n",
       "      <td>-0.009176</td>\n",
       "      <td>-0.000698</td>\n",
       "      <td>-0.000804</td>\n",
       "      <td>-0.005285</td>\n",
       "      <td>-0.008677</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-12-27</th>\n",
       "      <td>-0.005900</td>\n",
       "      <td>0.012405</td>\n",
       "      <td>0.018052</td>\n",
       "      <td>0.011144</td>\n",
       "      <td>0.018523</td>\n",
       "      <td>0.008694</td>\n",
       "      <td>0.017878</td>\n",
       "      <td>0.014421</td>\n",
       "      <td>0.037810</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-12-26</th>\n",
       "      <td>0.000380</td>\n",
       "      <td>-0.000551</td>\n",
       "      <td>-0.001490</td>\n",
       "      <td>0.005780</td>\n",
       "      <td>-0.002661</td>\n",
       "      <td>-0.001824</td>\n",
       "      <td>0.010757</td>\n",
       "      <td>0.002058</td>\n",
       "      <td>0.001301</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-12-24</th>\n",
       "      <td>-0.019454</td>\n",
       "      <td>-0.042573</td>\n",
       "      <td>-0.012850</td>\n",
       "      <td>-0.013241</td>\n",
       "      <td>0.000519</td>\n",
       "      <td>-0.008130</td>\n",
       "      <td>0.001714</td>\n",
       "      <td>-0.002427</td>\n",
       "      <td>-0.013204</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-12-23</th>\n",
       "      <td>-0.000950</td>\n",
       "      <td>0.002118</td>\n",
       "      <td>0.005168</td>\n",
       "      <td>0.004612</td>\n",
       "      <td>0.004223</td>\n",
       "      <td>0.000191</td>\n",
       "      <td>-0.000300</td>\n",
       "      <td>0.005052</td>\n",
       "      <td>-0.014180</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                AAPL      AMZN        FB     GOOGL       IBM      MSFT  \\\n",
       "Date                                                                     \n",
       "2019-12-30 -0.007254 -0.000514 -0.004093  0.000239 -0.009176 -0.000698   \n",
       "2019-12-27 -0.005900  0.012405  0.018052  0.011144  0.018523  0.008694   \n",
       "2019-12-26  0.000380 -0.000551 -0.001490  0.005780 -0.002661 -0.001824   \n",
       "2019-12-24 -0.019454 -0.042573 -0.012850 -0.013241  0.000519 -0.008130   \n",
       "2019-12-23 -0.000950  0.002118  0.005168  0.004612  0.004223  0.000191   \n",
       "\n",
       "                NFLX      ORCL      TSLA  \n",
       "Date                                      \n",
       "2019-12-30 -0.000804 -0.005285 -0.008677  \n",
       "2019-12-27  0.017878  0.014421  0.037810  \n",
       "2019-12-26  0.010757  0.002058  0.001301  \n",
       "2019-12-24  0.001714 -0.002427 -0.013204  \n",
       "2019-12-23 -0.000300  0.005052 -0.014180  "
      ]
     },
     "execution_count": 24,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Calculating our asset returns\n",
    "returns = ReturnsEstimation.calculate_returns(stock_prices)\n",
    "returns.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>AAPL</th>\n",
       "      <th>AMZN</th>\n",
       "      <th>FB</th>\n",
       "      <th>GOOGL</th>\n",
       "      <th>IBM</th>\n",
       "      <th>MSFT</th>\n",
       "      <th>NFLX</th>\n",
       "      <th>ORCL</th>\n",
       "      <th>TSLA</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>AAPL</th>\n",
       "      <td>0.000247</td>\n",
       "      <td>0.000143</td>\n",
       "      <td>0.000130</td>\n",
       "      <td>0.000123</td>\n",
       "      <td>0.000082</td>\n",
       "      <td>0.000132</td>\n",
       "      <td>0.000154</td>\n",
       "      <td>0.000090</td>\n",
       "      <td>0.000133</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>AMZN</th>\n",
       "      <td>0.000143</td>\n",
       "      <td>0.000329</td>\n",
       "      <td>0.000187</td>\n",
       "      <td>0.000175</td>\n",
       "      <td>0.000081</td>\n",
       "      <td>0.000166</td>\n",
       "      <td>0.000235</td>\n",
       "      <td>0.000088</td>\n",
       "      <td>0.000164</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>FB</th>\n",
       "      <td>0.000130</td>\n",
       "      <td>0.000187</td>\n",
       "      <td>0.000326</td>\n",
       "      <td>0.000161</td>\n",
       "      <td>0.000068</td>\n",
       "      <td>0.000136</td>\n",
       "      <td>0.000191</td>\n",
       "      <td>0.000087</td>\n",
       "      <td>0.000151</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>GOOGL</th>\n",
       "      <td>0.000123</td>\n",
       "      <td>0.000175</td>\n",
       "      <td>0.000161</td>\n",
       "      <td>0.000219</td>\n",
       "      <td>0.000080</td>\n",
       "      <td>0.000144</td>\n",
       "      <td>0.000184</td>\n",
       "      <td>0.000084</td>\n",
       "      <td>0.000125</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>IBM</th>\n",
       "      <td>0.000082</td>\n",
       "      <td>0.000081</td>\n",
       "      <td>0.000068</td>\n",
       "      <td>0.000080</td>\n",
       "      <td>0.000172</td>\n",
       "      <td>0.000094</td>\n",
       "      <td>0.000093</td>\n",
       "      <td>0.000086</td>\n",
       "      <td>0.000093</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>MSFT</th>\n",
       "      <td>0.000132</td>\n",
       "      <td>0.000166</td>\n",
       "      <td>0.000136</td>\n",
       "      <td>0.000144</td>\n",
       "      <td>0.000094</td>\n",
       "      <td>0.000215</td>\n",
       "      <td>0.000171</td>\n",
       "      <td>0.000104</td>\n",
       "      <td>0.000130</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>NFLX</th>\n",
       "      <td>0.000154</td>\n",
       "      <td>0.000235</td>\n",
       "      <td>0.000191</td>\n",
       "      <td>0.000184</td>\n",
       "      <td>0.000093</td>\n",
       "      <td>0.000171</td>\n",
       "      <td>0.000668</td>\n",
       "      <td>0.000109</td>\n",
       "      <td>0.000222</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>ORCL</th>\n",
       "      <td>0.000090</td>\n",
       "      <td>0.000088</td>\n",
       "      <td>0.000087</td>\n",
       "      <td>0.000084</td>\n",
       "      <td>0.000086</td>\n",
       "      <td>0.000104</td>\n",
       "      <td>0.000109</td>\n",
       "      <td>0.000176</td>\n",
       "      <td>0.000097</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>TSLA</th>\n",
       "      <td>0.000133</td>\n",
       "      <td>0.000164</td>\n",
       "      <td>0.000151</td>\n",
       "      <td>0.000125</td>\n",
       "      <td>0.000093</td>\n",
       "      <td>0.000130</td>\n",
       "      <td>0.000222</td>\n",
       "      <td>0.000097</td>\n",
       "      <td>0.000800</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "           AAPL      AMZN        FB     GOOGL       IBM      MSFT      NFLX  \\\n",
       "AAPL   0.000247  0.000143  0.000130  0.000123  0.000082  0.000132  0.000154   \n",
       "AMZN   0.000143  0.000329  0.000187  0.000175  0.000081  0.000166  0.000235   \n",
       "FB     0.000130  0.000187  0.000326  0.000161  0.000068  0.000136  0.000191   \n",
       "GOOGL  0.000123  0.000175  0.000161  0.000219  0.000080  0.000144  0.000184   \n",
       "IBM    0.000082  0.000081  0.000068  0.000080  0.000172  0.000094  0.000093   \n",
       "MSFT   0.000132  0.000166  0.000136  0.000144  0.000094  0.000215  0.000171   \n",
       "NFLX   0.000154  0.000235  0.000191  0.000184  0.000093  0.000171  0.000668   \n",
       "ORCL   0.000090  0.000088  0.000087  0.000084  0.000086  0.000104  0.000109   \n",
       "TSLA   0.000133  0.000164  0.000151  0.000125  0.000093  0.000130  0.000222   \n",
       "\n",
       "           ORCL      TSLA  \n",
       "AAPL   0.000090  0.000133  \n",
       "AMZN   0.000088  0.000164  \n",
       "FB     0.000087  0.000151  \n",
       "GOOGL  0.000084  0.000125  \n",
       "IBM    0.000086  0.000093  \n",
       "MSFT   0.000104  0.000130  \n",
       "NFLX   0.000109  0.000222  \n",
       "ORCL   0.000176  0.000097  \n",
       "TSLA   0.000097  0.000800  "
      ]
     },
     "execution_count": 25,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Calculating our covariance matrix\n",
    "cov = returns.cov()\n",
    "cov"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "AAPL    -0.166973\n",
       "AMZN    -0.316871\n",
       "FB      -0.152249\n",
       "GOOGL   -0.158188\n",
       "IBM      0.059573\n",
       "MSFT    -0.216532\n",
       "NFLX    -0.290067\n",
       "ORCL    -0.013684\n",
       "TSLA    -0.028971\n",
       "dtype: float64"
      ]
     },
     "execution_count": 26,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Calculating our mean asset returns\n",
    "mean_returns = ReturnsEstimation.calculate_mean_historical_returns(stock_prices)\n",
    "mean_returns"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Custom HCAA Portfolio - Conditional Drawdown at Risk \n",
      "       NFLX      AAPL        FB      AMZN    GOOGL      MSFT      TSLA  \\\n",
      "0  0.15038  0.113231  0.113995  0.169599  0.08536  0.173212  0.055718   \n",
      "\n",
      "        IBM      ORCL  \n",
      "0  0.083182  0.055322  \n"
     ]
    }
   ],
   "source": [
    "# From here, we can now create our portfolio\n",
    "hcaa_custom = HierarchicalClusteringAssetAllocation()\n",
    "hcaa_custom.allocate(asset_names=stock_prices.columns,\n",
    "                     asset_returns=returns,\n",
    "                     covariance_matrix=cov, \n",
    "                     expected_asset_returns=mean_returns,\n",
    "                     allocation_metric='conditional_drawdown_risk')\n",
    "\n",
    "print(\"Custom HCAA Portfolio - Conditional Drawdown at Risk \\n\", hcaa_custom.weights)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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ksOS/DTQd/d547yfrLCew5N8sLu/P7+mAgAAwLTMc8j9PknOn5neOJZtriOS/NWispdV1eeq6pVVtftSlarqqKpaX1XrL7rooi14WQAAAFi71vRN8arqFknulOTkmeJjktw+yd2S3CzJ85aq292v7+6Du/vgvfbaa+5tBQAAgG1pnoH+giT7zUzvO5ZtjscmeX93/3ihoLsv7MFlSd6cYWg/AAAA7FTmeQ39aUkOqKr9MwT5I5I8fjPXcWSGHvmfqqpbdPeFVVVJHpXk81ujsQAAm7Lu6A9s7yZM0nnHPWx7NwFghzS3HvruvjzJMzMMl/9Cknd391lV9ZKqemSSVNXdqmpjksckeV1VnbVQv6rWZejhP2XRqv+yqs5McmaSPZO8dF7bAAAAAGvVPHvo090nJTlpUdmxM89PyzAUf6m652WJm+h19wO2bisBAABgetb0TfEAAACApQn0AAAAMEECPQAAAEyQQA8AAAATJNADAADABM31LvcwVb5neMv4nmEAANh29NADAADABAn0AAAAMEECPQAAAEyQQA8AAAATJNADAADABAn0AAAAMEECPQAAAEyQQA8AAAATJNADAADABAn0AAAAMEECPQAAAEyQQA8AAAATJNADAADABAn0AAAAMEECPQAAAEyQQA8AAAATJNADAADABAn0AAAAMEECPQAAAEyQQA8AAAATJNADAADABAn0AAAAMEECPQAAAEyQQA8AAAATJNADAADABAn0AAAAMEECPQAAAEyQQA8AAAATJNADAADABAn0AAAAMEECPQAAAEyQQA8AAAATJNADAADABAn0AAAAMEECPQAAAEyQQA8AAAATJNADAADABM010FfVoVX1xaraUFVHLzH/vlX16aq6vKoOXzTviqo6Y3ycOFO+f1V9alznu6pqt3luAwAAAKxFcwv0VbVLkuOTPDTJgUmOrKoDFy321SRPTfKOJVbxg+4+aHw8cqb85Ule2d23TfKtJE/b6o0HAACANW7XOa777kk2dPe5SVJV70xyWJKzFxbo7vPGeT9ZzQqrqpI8IMnjx6ITkrwoyWu3VqMBAFjb1h39ge3dhEk677iHbe8mAFvZPIfc75Pk/JnpjWPZal2nqtZX1Ser6lFj2R5Jvt3dl29qnVV11Fh//UUXXbS5bQcAAIA1bZ499NfUrbr7gqq6dZKPVNWZSb6z2srd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\n",
      "text/plain": [
       "<Figure size 1224x504 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Plotting our custom portfolio\n",
    "custom_weights = hcaa_custom.weights[sorted(hcaa_custom.weights)]\n",
    "custom_weights = custom_weights.values.tolist()\n",
    "custom_weights = [item for sublist in custom_weights for item in sublist]\n",
    "y_pos = np.arange(len(stock_prices.columns))\n",
    "\n",
    "plt.figure(figsize=(17,7))\n",
    "plt.bar(y_pos, custom_weights)\n",
    "plt.xticks(y_pos, sorted(hcaa_custom.weights))\n",
    "plt.xlabel('Stocks')\n",
    "plt.ylabel('Portfolio Weights')\n",
    "plt.title('Custom HCAA Portfolio - Conditional Drawdown at Risk')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Through this implementation, we can see alternative ways of which users can construct an optimal portfolio using the HCAA techniques implemented by MlFinLab."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Conclusion\n",
    "Throughout this notebook, we saw how we can apply Raffinot's work from his Hierarchical Equal Risk Contribution technique through the MlFinLab library. We worked through how we can specify many different parameters to solve for our optimal portfolio, including chaning our risk metrics and the type of linkage algorithms being used for clustering. Users were also made aware of how they can customize their input to have more control over their calculations. If you would like to learn more about the HERC technique, please refer to Raffinot's original HERC paper linked at the top of this notebook. Additionally, please refer to the official documentation for this tutorial which can be found __[at this link](https://mlfinlab.readthedocs.io/en/latest/portfolio_optimisation/hierarchical_clustering_asset_allocation.html)__ if you have any further questions."
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
